package queue.queue;

/**
 * @author czt
 * @version 1.0
 * @since 2024/12/19
 *
 * 队列接口
 */
public interface Queue<E> {

    /**
     * 向队列尾部插入值
     * @param value 待插入值
     * @return 插入成功与否
     */
    boolean offer(E value);

    /**
     * 从队列头获取值，并移除
     * @return 如果队列非空返回头，否则返回null
     */
    E poll();

    /**
     * 从队列头获取值，不移除
     * @return 如果队列非空返回头，否则返回null
     */
    E peek();

    /**
     * 检测队列是否为空
     * @return 空返回true，不为空返回false
     */
    boolean isEmpty();

    /**
     * 检查队列是否已满
     * @return 满返回true，不满返回false
     */
    boolean isFull();
}
